
// var websock = null;
// var global_callback = null;
// var serverPort = '1234';

// function getWebIP() {
//     var curIP = window.location.hostname;
//    return curIP;
// }

// function initWebSocket() { //初始化weosocket
//     //ws地址
//     var wsuri = "ws://" +getWebIP()+":" + serverPort;
//     websock = new WebSocket(wsuri);
//     websock.onmessage = function (e) {
//         websocketonmessage(e);
//     }
//     websock.onclose = function (e) {
//         websocketclose(e);
//     }
//     websock.onopen = function () {
//         websocketOpen();
//     }

//     //连接发生错误的回调方法
//     websock.onerror = function () {
//         console.log("WebSocket连接发生错误");
//     }
// }

// // 实际调用的方法 
// function sendSock(agentData, callback) {
//     global_callback = callback;
//     if (websock.readyState === websock.OPEN) {
//         //若是ws开启状态
//         websocketsend(agentData)
//     } else if (websock.readyState === websock.CONNECTING) {
//         // 若是 正在开启状态，则等待1s后重新调用
//         setTimeout(function () {
//             sendSock(agentData, callback);
//         }, 1000);
//     } else {
//         // 若未开启 ，则等待1s后重新调用
//         setTimeout(function () {
//             sendSock(agentData, callback);
//         }, 1000);
//     }
// }

// //数据接收
// function websocketonmessage(e) {
//     global_callback(JSON.parse(e.data));
// }


// //数据发送
// function websocketsend(agentData) {
//     websock.send(JSON.stringify(agentData));
// }


// //关闭
// function websocketclose(e) {
//     console.log("connection closed (" + e.code + ")");
// }

// function websocketOpen(e) {
//    console.log(e)
//     console.log("连接成功");
// }

// initWebSocket();

// export { sendSock }




/* <template>
  <div class="test">
    <button v-on:click="initWebSocket">建立连接</button>
  </div>
</template>
<script>
import SockJS from "sockjs-client";
import Stomp from "stompjs";
export default {
  data() {
    return {
      stompClient: "",
      timer: "",
    };
  },
  methods: {
    initWebSocket() {
      console.log(11111111);
      this.connection();
      let that = this;
      // 断开重连机制,尝试发送消息,捕获异常发生时重连
      this.timer = setInterval(() => {
        try {
          that.stompClient.send("test");
        } catch (err) {
          console.log("断线了: " + err);
          that.connection();
        }
      }, 8000);
    },
    connection(){
      // 建立连接对象
      let socket = new SockJS("http://127.0.0.1:1234/ws");
      // 获取STOMP子协议的客户端对象
      this.stompClient = Stomp.over(socket);
      // 定义客户端的认证信息,按需求配置
      let headers = {
        Authorization: "",
      };
      // 向服务器发起websocket连接
      this.stompClient.connect(
        headers,
        () => {
          this.stompClient.subscribe(
            "/topic/public",
            (msg) => {
              // 订阅服务端提供的某个topic
              console.log("广播成功");
              console.log(msg); // msg.body存放的是服务端发送给我们的信息
            },
            headers
          );
          this.stompClient.send(
            "/app/chat.addUser",
            headers,
            JSON.stringify({ sender: "", chatType: "JOIN" })
          ); //用户加入接口
        },
        (err) => {
          // 连接发生错误时的处理函数
          console.log("失败");
          console.log(err);
        }
      );
    }, //连接 后台
    disconnect() {
      if (this.stompClient) {
        console.log('开始连接到后端111111111')
        this.stompClient.disconnect();
      }
    }, // 断开连接
  },
 
  beforeDestroy: function () {
    // 页面离开时断开连接,清除定时器
    this.disconnect();
    clearInterval(this.timer);
  },
};
</script> */

var http = require('http');
var io = require('socket.io');

var server = http.createServer((req,res)=>{

});
server.listen(2183);
var userNode = [];
var msgArr = [];
io.listen(server).on('connection',(user)=>{

	user.on('name',(str)=>{
		userNode.push(str);
		user.lastNames = str;
		user.broadcast.emit('user',userNode);
		user.emit('user',userNode);
		user.emit('allmsg',msgArr);
	});


	user.on('msg',(str)=>{
		msgArr.push({userName:user.lastNames,msg:str,timer:new Date().toLocaleTimeString()});
		user.broadcast.emit('msg',{userName:user.lastNames,msg:str,timer:new Date().toLocaleTimeString()});
		user.emit('mymsg',{userName:user.lastNames,msg:str,timer:new Date().toLocaleTimeString()});
	});
  
	user.on('disconnect',()=>{
		userNode.splice(userNode.indexOf(user.lastNames),1);
		user.broadcast.emit('userup',user.lastNames);
	});
	//user.lastNames = 
});